package edu.cdnu.dao;

import java.util.List;

import org.apache.ibatis.annotations.Mapper;

import edu.cdnu.common.dto.CatalogueDto;
import edu.cdnu.pojo.CataloguePojo;
import io.lettuce.core.dynamic.annotation.Param;

/**
 * 关于catalogue的表，资源目录，课程章节的dao层
 * @author ASUS AsingZ
 */
@Mapper
public interface CatalogueDao {
	
	/**
	 * 根据 条件 查询目录列表
	 * @param courseId  课程id
	 * @param parentId  父id  根目录为0
	 * @param state   状态：0-禁用，1-课程章节，2-资源目录
	 * @return
	 */
	public List<CatalogueDto> selectCatalogueListByCourseIdAndParentIdAndState(
			@Param("courseId") Integer courseId,@Param("parentId") Integer parentId,@Param("state") Integer state);
	
	/**
	 * 插入一个资源目录
	 * @param cataloguePojo
	 */
	public void insertCatalogue(CataloguePojo cataloguePojo);
	
	/**
	 * 修改课程通知
	 * @param cataloguePojo id不能为空
	 */
	public void updateCatalogueByCatalogueId(CataloguePojo cataloguePojo);
	
	/**
	 * 根据课程id 和 状态 查询出资源的 id的列表
	 * @param courseId
	 * @param state
	 * @return
	 */
	public List<Integer> selectCatalogueListByCourseIdAndState(@Param("courseId") int courseId,@Param("state") int state);
	
	/**
	 * 通过课程id 查询所有 目录的 叶子节点
	 * @param courseId
	 * @param state
	 * @return
	 */
	public List<CataloguePojo> selectLeafCatalogueListByCourseIdAndState(int courseId,int state);
}
